package cn.lhl.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;

@Configuration

/**Scheduling和Async的线程池是分开的
 * @EnableScheduling  的配置在 spring.task.scheduling 下
 * @EnableAsync 的配置在 spring.task.execution 下
 */

/*注解 @Scheduled(
		cron = "0/1 * * * * *" //表达式
		,fixedDelay = "" //上次执行结束到下次执行开始的延时
		,initialDelay = "" //fixedDelay或fixedRate 的时候第一次执行时的延迟
		,fixedRate = //上次执行开始到本次执行开始
	)
* */

@EnableScheduling
@EnableAsync


public class Task_cfg {

	/*** *** 多线程并行处理定时任务时，Timer运行多个TimeTask时，只要其中之一没有捕获抛出的异常，
	其它任务便会自动终止运行，使用ScheduledExecutorService则没有这个问题。*/


	/* //eg如下main中使用
	public static void main(String[] args) {
		Runnable task = new Runnable() {
			@Override
			public void run() {
				System.out.println("任务执行 --> " + LocalDateTime.now());
			}
		};

		//延时时间
		long DELAY = 3000;
		//间隔时间
		long PERIOD = 5000;
		ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
		service.scheduleAtFixedRate(task, DELAY, PERIOD, TimeUnit.MILLISECONDS);
	}*/
}
